/*
 * 文件名：WSAppLogger.java
 * 描述： 
 * 修改人： wangshi
 * 修改时间：2012-8-23
 */
package com.ws.app.common;

import com.ws.base.common.util.WSUtil;

/**
 * WSAppLogger
 * 
 * @author wangshi
 * @version
 * @since
 */
public class WSAppLogger {

    private Class<?> clazz;

    private boolean hasPrint;

    private WSAppLogger() {
    }

    private WSAppLogger(Class<?> clazz) {
        this.clazz = clazz;
    }

    public final void log(Throwable t) {
        log(t, null);
    }

    public final void log(Throwable t, String msg) {
        if (hasPrint) {
            if (null != t) {
                System.err.println(t);
            }

            if (!WSUtil.isEmpty(msg)) {
                System.out.println(msg);
            }

            System.out.println(clazz.getName());
        }
    }

    public final void log(String msg) {
        log(null, msg);
    }

    public final void error(Throwable t) {
        error(t, null);
    }

    public final void error(Throwable t, String msg) {
        if (hasPrint) {
            if (null != t) {
                System.err.println(t);
            }

            if (!WSUtil.isEmpty(msg)) {
                System.out.println(msg);
            }

            System.out.println(clazz.getName());
        }
    }

    public final void error(String msg) {
        error(null, msg);
    }

    public final void info(Object obj) {
        if (hasPrint) {

            if (null != obj) {
                System.out.println(clazz.getName() + ": " + obj);
            }
        }
    }

    public final static WSAppLogger getWSAppLogger(Class<?> clazz) {
        WSAppLogger wsAppLogger = new WSAppLogger(clazz);
        wsAppLogger.hasPrint = false;
        return wsAppLogger;
    }
}